#include #include #define BUTTON_PIN D8 #define LED_PIN D2 uint8_t peerAddress[] = {0x7C, 0x2C, 0x67, 0x64, 0xBA, 0xF8}; int trigger = 1; bool lastState = HIGH; // RECEIVE (ACK) void OnDataRecv(const esp_now_recv_info_t *info, const uint8_t *incomingData, int len) { Serial.println("ACK received → blink LED"); // Blink LED for few seconds for (int i = 0; i < 6; i++) { digitalWrite(LED_PIN, HIGH); delay(300); digitalWrite(LED_PIN, LOW); delay(300); } } void setup() { Serial.begin(115200); pinMode(BUTTON_PIN, INPUT_PULLUP); pinMode(LED_PIN, OUTPUT); WiFi.mode(WIFI_STA); esp_now_init(); esp_now_peer_info_t peerInfo = {}; memcpy(peerInfo.peer_addr, peerAddress, 6); esp_now_add_peer(&peerInfo); esp_now_register_recv_cb(OnDataRecv); Serial.println("Board 1 ready"); } void loop() { bool currentState = digitalRead(BUTTON_PIN); if (lastState == HIGH && currentState == LOW) { Serial.println("Sending trigger"); esp_now_send(peerAddress, (uint8_t *)&trigger, sizeof(trigger)); delay(300); // debounce } lastState = currentState; }